Various types of protocols have been created for exchanging information via computer communication networks. Among these types of protocols are file transfer protocols. A file transfer protocol is adapted to copy a particular file of a file system from a source (also called a server) to a destination (also called a client).
Multiple file transfer protocols have been developed with various different characteristics, each of which may be suitable for particular computing or network environments. One popular file transfer protocol is simply called the File Transfer Protocol (FTP). FTP operates using the Transmission Control Protocol (TCP), which provides connections and other functionality enabling reliable transfer between computing devices. On top of the reliability offered by TCP, FTP can offer other functionality to ensure secure transfer and listing of files available for transfer.
Because of the functionality of FTP, programs that implement the protocol can require a great deal of resources from the devices running them. For example, programs that implement the protocol can take up a lot of space to store or a lot of processing time to run. Additionally, a device running such a program may need other software, like drivers and libraries, that implement other functionality needed by FTP, including software that implements TCP. In some cases, a computing device that a user wishes to use to exchange files may not have such resources or software. The computing device may not have access to a large amount of memory or processing resources, or may not have other software that implements TCP or other functionality.
When a computing device does not have enough resources or software to support FTP or other resource-intensive file transfer protocols, other, simpler file transfer protocols may be used. For example, the Trivial File Transfer Protocol (TFTP) may be used. TFTP operates using the User Datagram Protocol (UDP), which is a connectionless communication protocol that does not include functionality for reliable transmission. TFTP also does not include any functionality for authentication of users or security and normally does not include congestion control techniques. As a result, TFTP can be implemented with very little storage space, very little processing resources, and very little reliance on other software.